// import {PureComponent} from 'react';
// import {
//   Card,
//   notification
// } from 'antd';
// import React from 'react';
// import Chat from 'chat-react';
// import {addChat, queryChat} from "@/pages/PrivateChat/service";
// import {getUrlParam} from "@/utils/ParamUtil";
// import {queryById} from "@/pages/UserInfo/service";
// import {connectChat} from '@/utils/ChatServer';
//
// class PrivateChat extends PureComponent{
//
//   state = {
//     currentUser: window.top.user,
//     objUser: null,
//     inputValue: '',
//     messages: [],
//     timestamp: new Date().getTime(),
//     loading: true
//   }
//
//   componentDidMount() {
//     this.chat = React.createRef();
//     this.getData();
//     let inputDom = document.getElementsByClassName('chat-input-wrapper')[0];
//     inputDom.style.width = '90%';
//     inputDom.style.left = '5%';
//     inputDom.style.backgroundColor = 'transparent';
//     document.getElementsByClassName('massage-container')[0].style.padding = '0 1% 0 1%';
//   };
//
//   connectServer = () => {
//     const { currentUser, objUser, messages = [] } = this.state;
//     if (!window.chatServer){
//       connectChat(currentUser.loginName);
//     }
//     window.chatServer.onmessage = msg => {
//       const { data } = msg;
//       if (data == null || data == '' || data.indexOf('连接成功') > -1){
//         return;
//       }
//       messages.push({
//         timestamp: new Date().getTime(),
//         userInfo: {
//           avatar: objUser.avatar,
//           name: objUser.loginName,
//           userId: objUser.id
//         },
//         value: data.split('|')[0].split('：')[1].split('&')[0]
//       })
//       this.setState({messages, timestamp: new Date().getTime(), inputValue: ''});
//     }
//   };
//
//   getData = () => {
//     const id = getUrlParam(window.location.href, 'id');
//     queryChat(
//       { sendId: id, receiveId: window.top.user.id }
//     ).then(res => {
//       let msg = new Array();
//       if (res.status == 200){
//         queryById({ id: id }).then(u => {
//           if (u && u.id) {
//             this.setState({objUser: u});
//             msg.push({
//               timestamp: new Date().getTime(),
//               userInfo: {
//                 avatar: u.avatar,
//                 name: u.loginName,
//                 userId: u.id
//               },
//               value: "hi(*^▽^*)【自动回复】"
//             })
//             this.connectServer();
//           }
//         })
//         if (res.data.length > 0){
//           this.setState({ messages: [...res.data], loading: false });
//         }else {
//           this.setState({ messages: msg, loading: false });
//         }
//       }
//     })
//   };
//
//   getData2 = async () => {
//     const id = getUrlParam(window.location.href, 'id');
//     const res = await queryChat({ sendId: id, receiveId: window.top.user.id });
//     const user = await queryById({ id: id });
//     let msg = new Array();
//     if (res.status == 200 && res.data.length > 0){
//       msg = [...res.data];
//     }else {
//       msg.push({
//         timestamp: new Date().getTime(),
//         userInfo: {
//           avatar: user.avatar,
//           name: user.loginName,
//           userId: user.id
//         },
//         value: "快来和我发消息吧(。◕ᴗ◕。)"
//       })
//     }
//     this.setState({ messages: msg, loading: false });
//     this.forceUpdate();
//   };
//
//   setInputFocus = () => {
//     this.chat.refs.input.inputFocus();
//   };
//
//   setScrollTop = () => {
//     this.chat.refs.message.setScrollTop(1200);
//   };
//
//   sendMessage = (v) => {
//     const { value, userInfo } = v;
//     if (!value || value == "\n") return;
//     if (value.length > 66){
//       notification.warning({
//         message: '消息长度超出限制！'
//       });
//       return;
//     }
//     const {messages = [], objUser, currentUser} = this.state;
//     messages.push(v);
//     const id = getUrlParam(window.location.href, 'id');
//     addChat({
//       sendId: userInfo.userId,
//       receiveId: id,
//       time: new Date().getTime(),
//       content: value.replace(/\r|\n/ig,""),
//       visible: 1
//     })
//     if (!window.chatServer){
//       connectChat(currentUser.loginName);
//     }
//     window.chatServer.send(`chat-<span style="color: #7dd4b8">${currentUser.loginName}</span> 给您发送了一条私信：${value}|${objUser.loginName}`);
//     this.setState({messages, timestamp: new Date().getTime(), inputValue: ''});
//   };
//
//   toUserInfo = e => {
//     if (e){
//       window.open('/userInfo?id=' + e.userId, '_blank');
//     }
//   };
//
//   render() {
//     const {inputValue, messages, timestamp, currentUser, loading} = this.state;
//
//     const userInfo = {
//       avatar: currentUser.avatar,
//       userId: currentUser.id,
//       name: currentUser.loginName
//     };
//
//     const customEmoticon = [
//       {text: '鸡你太美', url: 'http://ww1.sinaimg.cn/large/9150e4e5gy1g3or00xh6sj20k00k0mxk.jpg'},
//       {text: '唱跳rap', url: 'https://inews.gtimg.com/newsapp_bt/0/9182598337/1000'},
//       {text: '鸡1', url: 'http://inews.gtimg.com/newsapp_match/0/9182598373/0'},
//       {text: '鸡2', url: 'http://5b0988e595225.cdn.sohucs.com/images/20190518/d30820f41ba74be4bfa0f54bcdc35d35.jpeg'},
//       {text: '你好蔡啊', url: 'http://vthumb.ykimg.com/054101015E4AC0D9ADCA61A82E8CE907'},
//       {text: '鸡3', url: 'https://imgs.aixifan.com/content/2019_5_1/1.556725472053741E9.jpeg'}
//     ];
//
//     return (
//       <>
//         <Card bordered={false} style={{ padding: '0 0 0 0' }}>
//           <Chat
//             ref={el => this.chat = el}
//             loading={loading}
//             className="my-chat-box"
//             dataSource={messages}
//             userInfo={userInfo}
//             value={inputValue}
//             sendMessage={this.sendMessage}
//             timestamp={timestamp}
//             customEmoticon={customEmoticon}
//             timeFormat='yyyy-MM-dd hh:mm'
//             placeholder="请输入"
//             avatarClick={this.toUserInfo}
//             messageListStyle={{width: '100%'}}
//           />
//         </Card>
//       </>
//     )
//   }
// }
//
// export default PrivateChat;
